package main

import "fmt"

// 考察：数字操作、条件判断
//题目：判断一个整数是否是回文数----正着读和反着读都一样的整数

func isPalindrome(x int) bool {
	// 负数不是回文数
	if x < 0 {
		return false
	}

	// 保存原始值用于比较
	original := x
	reversed := 0

	// 完全反转整个数字
	for x > 0 {
		// 取出最后一位数字
		digit := x % 10
		// 构建反转后的数字
		reversed = reversed*10 + digit
		// 去掉已处理的最后一位
		x /= 10
	}

	// 比较原数字和反转后的数字是否相等
	return original == reversed
}

func main() {
	fmt.Println(isPalindrome(121))   // true
	fmt.Println(isPalindrome(-121))  // false
	fmt.Println(isPalindrome(10))    // false
	fmt.Println(isPalindrome(12321)) // true
	fmt.Println(isPalindrome(0))     // true
	fmt.Println(isPalindrome(1221))  // true
	fmt.Println(isPalindrome(123))   // false
}
